Software as a Service (SaaS) is a software application delivery model where an application service provider (ASP) hosts software applications and associated data on the cloud. Multiple instances of a software application can be stored on the cloud where each application instance has functionality that is tailored for a particular tenant (i.e., customer instance) or a particular group of users that belong to the tenant. This results in some application instances having different functionality than others. A provisioning service can enable and disable functionality for the various instances. Each instance can have a unique configuration.
The ASP can periodically update the hosted software applications to add new features, fix bugs, or update existing features. As a result, a tenant's application instance may need to be reconfigured to include the updates. The update process can be time consuming and confusing. First of all, it may be difficult for a tenant to determine which upgrades are applicable based on their current configuration or type of licenses they have purchased. As a result, the tenant may select an update for a feature that is not available to the tenant. Secondly, a tenant needs to read release notes, attend webinars, read press releases, watch training videos, or contact customer support to learn about the upgrade. Once the tenant has been properly educated, the tenant needs to contact customer support or technical support. The support team needs to verifies that the tenant understands the changes in the upgrade and can perform the upgrade. Once these conditions are met, the support team provisions the tenant's application instance to include the upgrade. This process is time consuming and requires many rounds of communication between the tenant and the ASP, which can be an undesirable to the tenant. Tenants can find the process daunting and as a result choose to skip updates.